#define x first
#define y second

using PII = pair<int, int>;

class Solution
{
public:
    PII get(char c)
    {
        int t = c - 'a';
        return {t / 5, t % 5};
    }

    string alphabetBoardPath(string target)
    {
        string res;
        PII p(0, 0);
        for (auto c : target)
        {
            auto t = get(c);
            if (c == 'z')
            {
                if (t.y > p.y) res += string(t.y - p.y, 'R');
                else res += string(p.y - t.y, 'L');
                if (t.x > p.x) res += string(t.x - p.x, 'D');
                else res += string(p.x - t.x, 'U');
            }
            else
            {
                if (t.x > p.x) res += string(t.x - p.x, 'D');
                else res += string(p.x - t.x, 'U');
                if (t.y > p.y) res += string(t.y - p.y, 'R');
                else res += string(p.y - t.y, 'L');
            }
            res += '!';
            p = t;
        }
        return res;
    }
};

